package com.spark.invoicings.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;

/**
 * 发货单表
 * 
 * @author sunyan
 * @email sunyan@gmail.com
 * @date 2024-06-13 11:13:53
 */
@Data
@TableName("t_sale_delivery_order")
public class DeliveryOrder implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 发货单ID
	 */
	@TableId(type = IdType.AUTO)
	private Integer deliveryId;
	/**
	 * 发货状态(1待申请, 2审批中, 3待出库, 4已出库, 5已签收, 6已驳回, 7已撤销)
	 */
	private Integer shipmentStatusId;
	/**
	 * 客户ID
	 */
	private Integer customerId;
	/**
	 * 销售订单ID
	 */
	private Integer salesOrderId;
	/**
	 * 出库单ID
	 */
	private Integer outboundOrderId;
	/**
	 * 申请发货日期
	 */
	private Date applyDeliveryDate;
	/**
	 * 申请人
	 */
	private String applicant;
	/**
	 * 申请日期
	 */
	private Date applyDate;
	/**
	 * 收货人
	 */
	private String consignee;
	/**
	 * 收货电话
	 */
	private String consigneePhone;
	/**
	 * 收货地址
	 */
	private String consigneeAddress;
	/**
	 * 发货方式
	 */
	private Integer shippingMethod;
	/**
	 * 发货人
	 */
	private String deliverer;
	/**
	 * 实际出库日期
	 */
	private Date actualOutboundDate;
	/**
	 * 客户签收凭证（图）
	 */
	private String customerReceiptProof;
	/**
	 * 客户签收日期
	 */
	private Date customerReceiptDate;
	/**
	 * 审批人
	 * */
	private String approver;
	/**
	 * 审批时间
	 * */
	private String approvalTime;


	@TableField(exist = false)
	private SalesOrder salesOrder;
	@TableField(exist = false)
	private SaleCustomer customer;
	@TableField(exist = false)
	private String method;
	@TableField(exist = false)
	private OutboundOrder outboundOrder;
	@TableField(exist = false)
	private List<ShipmentDetail> shipmentDetails;

	public Integer getDeliveryId() {
		return deliveryId;
	}

	public void setDeliveryId(Integer deliveryId) {
		this.deliveryId = deliveryId;
	}

	public Integer getShipmentStatusId() {
		return shipmentStatusId;
	}

	public void setShipmentStatusId(Integer shipmentStatusId) {
		this.shipmentStatusId = shipmentStatusId;
	}

	public Integer getCustomerId() {
		return customerId;
	}

	public void setCustomerId(Integer customerId) {
		this.customerId = customerId;
	}

	public Integer getSalesOrderId() {
		return salesOrderId;
	}

	public void setSalesOrderId(Integer salesOrderId) {
		this.salesOrderId = salesOrderId;
	}

	public Integer getOutboundOrderId() {
		return outboundOrderId;
	}

	public void setOutboundOrderId(Integer outboundOrderId) {
		this.outboundOrderId = outboundOrderId;
	}

	public Date getApplyDeliveryDate() {
		return applyDeliveryDate;
	}

	public void setApplyDeliveryDate(Date applyDeliveryDate) {
		this.applyDeliveryDate = applyDeliveryDate;
	}

	public String getApplicant() {
		return applicant;
	}

	public void setApplicant(String applicant) {
		this.applicant = applicant;
	}

	public Date getApplyDate() {
		return applyDate;
	}

	public void setApplyDate(Date applyDate) {
		this.applyDate = applyDate;
	}

	public String getConsignee() {
		return consignee;
	}

	public void setConsignee(String consignee) {
		this.consignee = consignee;
	}

	public String getConsigneePhone() {
		return consigneePhone;
	}

	public void setConsigneePhone(String consigneePhone) {
		this.consigneePhone = consigneePhone;
	}

	public String getConsigneeAddress() {
		return consigneeAddress;
	}

	public void setConsigneeAddress(String consigneeAddress) {
		this.consigneeAddress = consigneeAddress;
	}

	public Integer getShippingMethod() {
		return shippingMethod;
	}

	public void setShippingMethod(Integer shippingMethod) {
		this.shippingMethod = shippingMethod;
	}

	public String getDeliverer() {
		return deliverer;
	}

	public void setDeliverer(String deliverer) {
		this.deliverer = deliverer;
	}

	public Date getActualOutboundDate() {
		return actualOutboundDate;
	}

	public void setActualOutboundDate(Date actualOutboundDate) {
		this.actualOutboundDate = actualOutboundDate;
	}

	public String getCustomerReceiptProof() {
		return customerReceiptProof;
	}

	public void setCustomerReceiptProof(String customerReceiptProof) {
		this.customerReceiptProof = customerReceiptProof;
	}

	public Date getCustomerReceiptDate() {
		return customerReceiptDate;
	}

	public void setCustomerReceiptDate(Date customerReceiptDate) {
		this.customerReceiptDate = customerReceiptDate;
	}

	public String getApprover() {
		return approver;
	}

	public void setApprover(String approver) {
		this.approver = approver;
	}

	public String getApprovalTime() {
		return approvalTime;
	}

	public void setApprovalTime(String approvalTime) {
		this.approvalTime = approvalTime;
	}

	public SalesOrder getSalesOrder() {
		return salesOrder;
	}

	public void setSalesOrder(SalesOrder salesOrder) {
		this.salesOrder = salesOrder;
	}

	public SaleCustomer getCustomer() {
		return customer;
	}

	public void setCustomer(SaleCustomer customer) {
		this.customer = customer;
	}

	public String getMethod() {
		return method;
	}

	public void setMethod(String method) {
		this.method = method;
	}

	public OutboundOrder getOutboundOrder() {
		return outboundOrder;
	}

	public void setOutboundOrder(OutboundOrder outboundOrder) {
		this.outboundOrder = outboundOrder;
	}

	public List<ShipmentDetail> getShipmentDetails() {
		return shipmentDetails;
	}

	public void setShipmentDetails(List<ShipmentDetail> shipmentDetails) {
		this.shipmentDetails = shipmentDetails;
	}
}
